using System.Collections.Generic;
using System.Linq;
using MongoDB.Driver;

namespace MongoScienceDAL.Core
{
    public interface IDataSource
    {
        MongoDatabase Database { get; }

        IDictionary<string, string> RestrictedCollectionNames { get; set; }

        IQueryable<ScienceCollection> QueryCollections();
        ScienceCollection AddCollection(ScienceCollection collection);
        
        IQueryable<ScienceType> QueryCollectionTypes(string collectionName);
        ScienceType AddCollectionType(string collectionName, ScienceType type);
        void UpdateCollectionType(ScienceType type);
    }
}